Communication of data over computer networks, particularly the Internet, has become an important, if not essential, way for many organizations and individuals to disseminate information. The Internet is a global network connecting millions of computers using a client-server architecture in which any computer connected to the Internet can potentially receive data from and send data to any other computer connected to the Internet. The Internet provides a variety methods in which to communicate data, one of the most ubiquitous of which is the World Wide Web. Other methods for communicating data over the Internet include e-mail, usenet newsgroups, telnet and FTP.
The World Wide Web is a system of Internet servers, typically called “web servers”, that support documents formatted according to the hypertext markup language (“HTML”). These documents, known as web pages, are transferred across the Internet according to the Hypertext Transfer Protocol (“HTTP”). Web pages are often organized into web sites that represent a site or location on the world wide web. The web pages within a web site can link to one or more web pages (or files) at the same web site or at other web sites. A user can access web pages using a browser program and can “click on” links in the web pages being viewed to access other web pages. Each time the user clicks on a link, the browser program generates an HTTP request and communicates it to web server hosting the web page. The web server retrieves the requested web page and returns the web page to the browser program. The returned web page can provide a variety of information, often referred to as content, including text, graphics, audio and video content. The content of a web site can inform and entertain visitors, provide a mechanism for carrying out transactions, and guide a user's web browsing experience.
Because web pages can display information and receive information from users, web sites have become popular for enabling commercial transactions. As web sites become more important to commerce, businesses are increasingly interested in managing information related to visitors and content. Capturing and managing visitor profile information is critical for many facets of e-commerce (e.g., E-marketing, personalization). In prior art systems, data related to web site visitors is typically stored as individual fields or as records. These systems are deficient, however, because they lead to inefficient data storage and management.
In systems in which data is stored in individual fields, the fields are typically not related together in any meaningful sense for the management of visitor profile information. In these systems, there is typically a one to one correlation between the method by which data is accessed and the storage format. In other words, each application accessing the information would maintain its own copy of the information. If a large number visitors are accessing a web site and purchasing products, this can lead to redundant storage of vast amounts of data.
In record based systems, each application accessing the user information maintains a user profile as a record having particular fields. While fields are related together through records, each application that accesses the user profile information typically still maintains its own record, leading to redundant records. Moreover, each record will typically contain all the fields defined for the record, whether or not there is a value associated with the field. If, for example, a user profile record is configured to keep track of each product that a user has purchased, the record will contain a field for every product available over the web site and a value indicating whether the corresponding product has been purchased. As the number of fields in the record increases, the amount of storage also increases.
Some existing database systems employ object-to-relational mapping to provide a mapping of data stored in a database. In these systems, each application accessing data in the database is configured with an object that maps particular attributes to the underlying database. Redundant data storage can be reduced as various applications can apply the mapping to access the same pieces of underlying data. These systems are deficient for visitor profile management, however, because each application applies the mapping separately. If the data storage schema changes for visitor profile information, each application accessing the visitor profile data must be updated. Moreover, object-to-relational mappings typically only address storage of data in relational databases. User profile information, however, can be stored in a variety of data storage locations including memory locations, database locations, directory locations, files and so on.